Подключение метода /api/v1/auth/login на API-Шлюзе

Валидация входящего DTO, вызов gRPC Auth и трансляция токенов клиенту.

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи
  • Репозиторий / Компонент: backend-api (API Gateway / Шлюз).
  • Категория: Подключение метода к шлюзу.
  • Контракт взаимодействия: Внешний POST /api/v1/auth/login -> Внутренний gRPC AuthService.LoginUser.
  • Статус: Готово к реализации

  • Инструкция по шагам:

    1. На Шаге 1-2 (Входной REST-эндпоинт): Зарегистрировать публичный HTTP-маршрут POST /api/v1/auth/login. Добавить Pydantic/DTO валидацию тела запроса (UserAuthRequestDTO). Настроить базовую валидацию регулярным выражением для поля email. При ошибках валидации отдавать HTTP 400 Bad Request.
    2. На Шаге 3 (Вызов gRPC-клиента): Сформировать сообщение LoginRequest, передав туда строки email и password. Вызвать внутренний gRPC-метод LoginUser в компоненте auth-service. Обеспечить сквозное логирование поставляемого в заголовках X-Request-ID.
    3. Обработка бизнес-статусов: Реализовать перехват ответов от gRPC-сервера. Если бэкенд возвращает NOT_FOUND или UNAUTHENTICATED, транслировать это на внешний клиент единой замаскированной ошибкой безопасности, чтобы исключить брутфорс логинов (например, отдавать HTTP 401 Unauthorized с общим текстом “Invalid credentials”). При ошибке INVALID_ARGUMENT возвращать HTTP 400 Bad Request.
    4. Финальный ответ (Шаг 9): При получении успешного LoginResponse (с токенами внутри), сформировать JSON-ответ со статусом 200 OK, содержащий access и refresh ключи, для отправки в мобильное приложение.